/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package facade;

import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import service.UsuariosService;
import service.encuestaService;
import vo.UsuariosVO;
import vo.encuestaVO;

/**
 *
 * @author miguel.duran
 */
public class facade {
    private encuestaService encuesta;

    public facade(){
        encuesta = new encuestaService();
    }

    public void crearEncuesta(encuestaVO vo){
        EntityManagerFactory emf = null;
        EntityManager em = null;
        EntityTransaction tx = null;
        try {
            emf = Persistence.createEntityManagerFactory("EncuestaCAREPU");
            em = emf.createEntityManager();
            tx = em.getTransaction();
            tx.begin();
            encuesta.create(vo, em);
            tx.commit();
        } catch (Exception e) {
            if(em != null && tx != null){
                tx.rollback();
            }
        } finally {
            if(em != null){
                em.clear();
                em.close();
            }
        }
    }

    public List<encuestaVO> ListaEncuestas(){
        EntityManagerFactory emf = null;
        EntityManager em = null;
        EntityTransaction tx = null;
        List<encuestaVO> vo = null;
        try {
            emf = Persistence.createEntityManagerFactory("EncuestaCAREPU");
            em = emf.createEntityManager();
            tx = em.getTransaction();
            tx.begin();
            vo = encuesta.getList(em);
            tx.commit();
        } catch (Exception e) {
            if(em != null && tx != null){
                tx.rollback();
            }
        } finally {
            if(em != null){
                em.clear();
                em.close();
            }
        }
        return vo;

    }
    
    public List<encuestaVO> ListaEncuestasRango(Date fecha_1, Date fecha_2){
        EntityManagerFactory emf = null;
        EntityManager em = null;
        EntityTransaction tx = null;
        List<encuestaVO> vo = null;
        try {
            emf = Persistence.createEntityManagerFactory("EncuestaCAREPU");
            em = emf.createEntityManager();
            tx = em.getTransaction();
            tx.begin();
            vo = encuesta.getListRango(fecha_1, fecha_2, em);
            tx.commit();
        } catch (Exception e) {
            if(em != null && tx != null){
                tx.rollback();
            }
        } finally {
            if(em != null){
                em.clear();
                em.close();
            }
        }
        return vo;

    }
    
    public Boolean validarUsuario(String usuario, String password){
        EntityManagerFactory emf = null;
        EntityManager em = null;
        EntityTransaction tx = null;
        UsuariosVO vo = new UsuariosVO();
        UsuariosVO vow = new UsuariosVO();
        Boolean resultado = false;
        UsuariosService user = new UsuariosService();

        vo.setLogin(usuario);
        vo.setPassword(password);
        try {
            emf = Persistence.createEntityManagerFactory("EncuestaCAREPU");
            em = emf.createEntityManager();
            tx = em.getTransaction();
            tx.begin();
            vow = user.getByLogin(vo.getLogin(), em);
            if(vo.getLogin().equals(vow.getLogin()) && vo.getPassword().equals(vow.getPassword())){
                resultado = true;
            }            
            tx.commit();
        } catch (Exception e) {
            if(em != null && tx != null){
                tx.rollback();
            }
        } finally {
            if(em != null){
                em.clear();
                em.close();
            }
        }
        return resultado;
    }

}
